package pe.gob.onpe.ejb;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * TipoEleccion entity.
 * 
 * @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "TIPO_ELECCION", schema = "SVENP", uniqueConstraints = {})
public class TipoEleccion implements java.io.Serializable {

	// Fields
	private static final long serialVersionUID = -1586011671990711026L;
	private Long tipoEleccionId;
	private String nombre;
	private Set<Procesoelectoraltipoeleccion> procesoelectoraltipoeleccions = new HashSet<Procesoelectoraltipoeleccion>(0);
	private Set<ParticipacionListaCandidatos> participacionListaCandidatoses = new HashSet<ParticipacionListaCandidatos>(0);

	// Constructors

	/** default constructor */
	public TipoEleccion() {
	}

	/** minimal constructor */
	public TipoEleccion(Long tipoEleccionId, String nombre) {
		this.tipoEleccionId = tipoEleccionId;
		this.nombre = nombre;
	}

	/** full constructor */
	public TipoEleccion(Long tipoEleccionId, String nombre,
			Set<Procesoelectoraltipoeleccion> procesoelectoraltipoeleccions,
			Set<ParticipacionListaCandidatos> participacionListaCandidatoses) {
		this.tipoEleccionId = tipoEleccionId;
		this.nombre = nombre;
		this.procesoelectoraltipoeleccions = procesoelectoraltipoeleccions;
		this.participacionListaCandidatoses = participacionListaCandidatoses;
	}

	// Property accessors
	@Id
	@Column(name = "TIPO_ELECCION_ID", unique = true, nullable = false, insertable = true, updatable = true, precision = 10, scale = 0)
	public Long getTipoEleccionId() {
		return this.tipoEleccionId;
	}

	public void setTipoEleccionId(Long tipoEleccionId) {
		this.tipoEleccionId = tipoEleccionId;
	}

	@Column(name = "NOMBRE", unique = false, nullable = false, insertable = true, updatable = true)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "tipoEleccion")
	public Set<Procesoelectoraltipoeleccion> getProcesoelectoraltipoeleccions() {
		return this.procesoelectoraltipoeleccions;
	}

	public void setProcesoelectoraltipoeleccions(
			Set<Procesoelectoraltipoeleccion> procesoelectoraltipoeleccions) {
		this.procesoelectoraltipoeleccions = procesoelectoraltipoeleccions;
	}

	@OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "tipoEleccion")
	public Set<ParticipacionListaCandidatos> getParticipacionListaCandidatoses() {
		return this.participacionListaCandidatoses;
	}

	public void setParticipacionListaCandidatoses(
			Set<ParticipacionListaCandidatos> participacionListaCandidatoses) {
		this.participacionListaCandidatoses = participacionListaCandidatoses;
	}

}